<?php
namespace app\service;
use app\service\BaseService;
use think\facade\Log;
use app\model\Applets;


class IndexService extends BaseService{

	//小程序列表
	public function miniapplist($input){

		$keywords=$input->param('keywords','');

		$result=Applets::queryMiniProgramList(["keywords"=>$keywords]);

		return $this->return_msg($result);
	}

	//消息
	public function message($input){

		$keywords=$input->param('keywords','');

		// 设置响应头
        $response = Response::create();
        $response->header('Content-Type','text/event-stream');
        $response->header('Cache-Control', 'no-cache');
        $response->header('Connection', 'keep-alive');
        $response->header('X-Accel-Buffering', 'no');

        // 开始输出内容
        echo ':'. str_repeat(' ', 2048). "\n"; // 用于解决 Chrome 的连接超时问题
        echo "retry: 1000\n"; // 重试时间为 1 秒

        // 持续发送数据
        while (true) {
            // 检查连接是否中断
            if (connection_aborted()) {
                break;
            }

            // 获取要发送的数据，例如从 Session 中获取
            $data = Session::get('sse_data', 'No data available');

            // 发送数据
            echo "data: ". $data. "\n\n";
            ob_flush();
            flush();

            // 模拟数据更新
            Session::set('sse_data', 'Updated data at '. date('Y-m-d H:i:s'));

            // 等待一段时间
            sleep(1);
        }


		return $this->return_msg($result);
	}











}
